import { Injectable } from '@nestjs/common';
import axios from 'axios';

@Injectable()
export class AiInterpretationService {
  private readonly openaiApiKey = process.env.OPENAI_API_KEY;
  private readonly openaiBaseUrl =
    process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1';
  private readonly deepseekApiKey =
    process.env.DEEPSEEK_API_KEY || 'sk-aba8dc8f4849440e9e4e5da2a5be1806';
  private readonly deepseekBaseUrl =
    process.env.DEEPSEEK_BASE_URL || 'https://api.deepseek.com/v1';

  async interpretHexagram(hexagram: any, question?: string): Promise<string> {
    try {
      // 优先使用DeepSeek API
      if (this.deepseekApiKey) {
        console.log('使用DeepSeek API进行卦象解读');
        return await this.callDeepSeekAPI(hexagram, question);
      }

      // 其次使用OpenAI API
      if (this.openaiApiKey) {
        console.log('使用OpenAI API进行卦象解读');
        return await this.callOpenAIAPI(hexagram, question);
      }

      // 如果都没有配置，使用本地AI解读
      console.log('使用本地AI解读（未配置API密钥）');
      return this.getLocalInterpretation(hexagram, question);
    } catch (error) {
      console.error('AI解读失败:', error.message);

      // 如果是API余额不足等严重错误，直接返回错误信息
      if (
        error.message.includes('余额不足') ||
        error.message.includes('配置错误')
      ) {
        return `AI解读服务暂时不可用：${error.message}\n\n${this.getLocalInterpretation(hexagram, question)}`;
      }

      // 其他错误回退到本地解读
      console.log('回退到本地AI解读');
      return this.getLocalInterpretation(hexagram, question);
    }
  }

  private async callDeepSeekAPI(
    hexagram: any,
    question?: string,
  ): Promise<string> {
    const prompt = this.buildPrompt(hexagram, question);
    const maxRetries = 3;
    let lastError;

    for (let attempt = 1; attempt <= maxRetries; attempt++) {
      try {
        console.log(`调用DeepSeek API进行卦象解读... (尝试 ${attempt}/${maxRetries})`);

        const response = await axios.post(
          `${this.deepseekBaseUrl}/chat/completions`,
          {
            model: 'deepseek-chat',
            messages: [
              {
                role: 'system',
                content:
                  '你是一位精通易经的专家，能够深入解读卦象的含义，提供智慧的人生指导。请用中文回答，语言要优雅、深刻，符合易经的哲学思想。回答要结构清晰，包含卦象含义、指导建议、注意事项和行动建议。',
              },
              {
                role: 'user',
                content: prompt,
              },
            ],
            max_tokens: 1500,
            temperature: 0.7,
            stream: false,
          },
          {
            headers: {
              Authorization: `Bearer ${this.deepseekApiKey}`,
              'Content-Type': 'application/json',
              'User-Agent': 'Yijing-App/1.0',
            },
            timeout: 60000, // 60秒超时
            maxRedirects: 5,
            validateStatus: function (status) {
              return status >= 200 && status < 300; // 只接受2xx状态码
            },
          },
        );

        if (
          response.data &&
          response.data.choices &&
          response.data.choices.length > 0
        ) {
          console.log('DeepSeek API调用成功');
          return response.data.choices[0].message.content;
        } else {
          throw new Error('DeepSeek API返回数据格式异常');
        }
      } catch (error) {
        lastError = error;
        console.error(
          `DeepSeek API调用失败 (尝试 ${attempt}/${maxRetries}):`,
          error.code || error.message,
        );

        // 如果是余额不足或其他API错误，直接抛出
        if (error.response?.data?.error?.code === 'invalid_request_error') {
          throw new Error(
            'DeepSeek API余额不足或配置错误，请检查API密钥和账户余额',
          );
        }

        // 如果是网络错误且还有重试机会，等待后重试
        if (attempt < maxRetries && (error.code === 'ECONNABORTED' || error.code === 'ENOTFOUND' || error.code === 'ETIMEDOUT' || error.message === 'aborted')) {
          console.log(`等待 ${attempt * 2} 秒后重试...`);
          await new Promise(resolve => setTimeout(resolve, attempt * 2000));
          continue;
        }

        // 其他错误或重试次数用完，抛出错误
        throw error;
      }
    }

    // 如果所有重试都失败了
    throw lastError;
  }

  private async callOpenAIAPI(
    hexagram: any,
    question?: string,
  ): Promise<string> {
    const prompt = this.buildPrompt(hexagram, question);

    const response = await axios.post(
      `${this.openaiBaseUrl}/chat/completions`,
      {
        model: 'gpt-3.5-turbo',
        messages: [
          {
            role: 'system',
            content:
              '你是一位精通易经的专家，能够深入解读卦象的含义，提供智慧的人生指导。请用中文回答，语言要优雅、深刻，符合易经的哲学思想。',
          },
          {
            role: 'user',
            content: prompt,
          },
        ],
        max_tokens: 1000,
        temperature: 0.7,
      },
      {
        headers: {
          Authorization: `Bearer ${this.openaiApiKey}`,
          'Content-Type': 'application/json',
        },
      },
    );

    return response.data.choices[0].message.content;
  }

  private buildPrompt(hexagram: any, question?: string): string {
    let prompt = `请解读以下易经卦象：

卦名：${hexagram.chineseName} (${hexagram.name})
卦象：${hexagram.symbol}
象征：${hexagram.description}
卦辞：${hexagram.interpretation}

爻辞：
${hexagram.lines.map((line: string, index: number) => `${index + 1}. ${line}`).join('\n')}`;

    if (question) {
      prompt += `\n\n求问者的问题：${question}`;
    }

    prompt += `\n\n请提供：
1. 卦象的整体含义解读
2. 对当前情况的指导建议
3. 需要注意的事项
4. 行动建议

请用易经的智慧来回答，语言要深刻而富有启发性。`;

    return prompt;
  }

  private getLocalInterpretation(hexagram: any, question?: string): string {
    // 本地AI解读逻辑，基于卦象特征提供解读
    let interpretation = `卦象解读：${hexagram.chineseName}卦\n\n`;

    // 根据卦象ID提供不同的解读
    const interpretations = this.getHexagramInterpretations();
    const hexagramInterpretation =
      interpretations[hexagram.id] || interpretations[1];

    interpretation += hexagramInterpretation;

    if (question) {
      interpretation += `\n\n针对您的问题"${question}"：\n`;
      interpretation += this.getQuestionGuidance(hexagram.id, question);
    }

    interpretation += `\n\n总体建议：${this.getOverallAdvice(hexagram.id, question)}`;

    return interpretation;
  }

  private getHexagramInterpretations(): { [key: number]: string } {
    return {
      1: `乾卦象征天，代表刚健、进取、领导力。此卦提示您正处于积极向上的阶段，适合主动出击，发挥领导才能。但要注意不可过于急躁，要循序渐进。`,
      2: `坤卦象征地，代表柔顺、包容、承载。此卦提示您需要以柔克刚，以德服人。在困难时期要保持耐心，厚德载物，终会获得成功。`,
      3: `屯卦象征万物初生，代表困难与机遇并存。此卦提示您正处于起步阶段，虽然困难重重，但蕴含着巨大的发展潜力。需要坚定信念，勇往直前。`,
      4: `蒙卦象征启蒙教育，代表学习与成长。此卦提示您需要虚心学习，接受指导。在迷茫时期要寻求智者的帮助，通过学习和实践来提升自己。`,
      5: `需卦象征等待时机，代表耐心与准备。此卦提示您需要耐心等待合适的时机，做好充分的准备。不要急于求成，时机成熟时自然会有所收获。`,
      6: `讼卦象征争讼，代表冲突与解决。此卦提示您可能面临争议或冲突，需要以理服人，避免意气用事。通过沟通和协商来解决问题。`,
      7: `师卦象征军队，代表纪律与组织。此卦提示您需要建立良好的秩序和纪律，发挥团队的力量。在集体行动中要服从指挥，团结一致。`,
      8: `比卦象征亲近，代表团结与合作。此卦提示您需要与他人建立良好的关系，通过合作来实现共同的目标。要真诚待人，建立信任。`,
      9: `小畜卦象征小有积蓄，代表积累与准备。此卦提示您正在积累力量，虽然进展缓慢，但方向正确。需要继续努力，厚积薄发。`,
      10: `履卦象征行走，代表行动与实践。此卦提示您需要脚踏实地，通过实际行动来实现目标。要谨慎行事，避免冒险。`,
      11: `泰卦象征通泰，代表和谐与顺利。此卦提示您正处于顺利的时期，各方面都比较和谐。要珍惜这个时期，继续努力。`,
      12: `否卦象征闭塞，代表困难与阻碍。此卦提示您可能面临困难时期，需要保持耐心，等待时机。不要强行突破，要顺应形势。`,
      13: `同人卦象征团结，代表合作与和谐。此卦提示您需要与他人合作，建立良好的关系。通过团结一致来实现共同的目标。`,
      14: `大有卦象征大有收获，代表成功与富足。此卦提示您正处于成功的时期，各方面都有所收获。要珍惜成果，继续努力。`,
      15: `谦卦象征谦虚，代表谦逊与低调。此卦提示您需要保持谦虚的态度，不要骄傲自满。通过谦逊来获得他人的尊重和支持。`,
      16: `豫卦象征快乐，代表愉悦与满足。此卦提示您正处于快乐的时期，心情愉悦。要珍惜这个时期，享受生活的美好。`,
      17: `随卦象征跟随，代表顺从与适应。此卦提示您需要适应环境的变化，跟随大势。不要固执己见，要灵活变通。`,
      18: `蛊卦象征腐败，代表问题与解决。此卦提示您可能面临一些问题，需要及时解决。要勇于面对问题，积极寻找解决方案。`,
      19: `临卦象征临近，代表接近与到达。此卦提示您正在接近目标，需要继续努力。要保持积极的态度，迎接挑战。`,
      20: `观卦象征观察，代表审视与思考。此卦提示您需要仔细观察和分析情况，不要急于行动。通过深入思考来做出正确的决策。`,
      21: `噬嗑卦象征咬合，代表解决与突破。此卦提示您需要咬紧牙关，克服困难。通过坚持不懈的努力来突破障碍。`,
      22: `贲卦象征装饰，代表美化与提升。此卦提示您需要注重外在的表现，提升自己的形象。通过美化来获得更好的效果。`,
      23: `剥卦象征剥落，代表衰落与变化。此卦提示您可能面临一些衰落或变化，需要适应新的情况。要保持积极的态度，寻找新的机会。`,
      24: `复卦象征回复，代表恢复与重生。此卦提示您正在恢复或重生，需要重新开始。要保持信心，迎接新的开始。`,
      25: `无妄卦象征无妄，代表真实与自然。此卦提示您需要保持真实和自然，不要做作。通过真诚来获得他人的信任。`,
      26: `大畜卦象征大积蓄，代表积累与准备。此卦提示您正在大量积累，需要继续努力。要厚积薄发，为未来的发展做好准备。`,
      27: `颐卦象征颐养，代表修养与调养。此卦提示您需要注重修养和调养，保持身心健康。通过修养来提升自己的境界。`,
      28: `大过卦象征大过，代表过度与调整。此卦提示您可能有些过度，需要适当调整。要保持平衡，避免极端。`,
      29: `坎卦象征水，代表险阻与流动。此卦提示您可能面临一些险阻，需要小心应对。要保持冷静，寻找突破口。`,
      30: `离卦象征火，代表光明与热情。此卦提示您需要保持光明和热情，照亮前行的道路。通过热情来感染他人。`,
      31: `咸卦象征感应，代表沟通与交流。此卦提示您需要与他人建立良好的沟通，通过交流来增进理解。`,
      32: `恒卦象征恒久，代表持久与稳定。此卦提示您需要保持持久和稳定，不要轻易改变。通过坚持来获得成功。`,
      33: `遁卦象征隐退，代表退避与等待。此卦提示您需要适当退避，等待更好的时机。不要强行前进，要顺应形势。`,
      34: `大壮卦象征大壮，代表强大与有力。此卦提示您正处于强大的时期，需要发挥自己的力量。但要避免过于强势。`,
      35: `晋卦象征前进，代表进步与提升。此卦提示您正在前进，需要继续努力。通过不断进步来提升自己。`,
      36: `明夷卦象征光明被遮蔽，代表困难与挑战。此卦提示您可能面临一些困难，需要保持信心。要相信光明终会到来。`,
      37: `家人卦象征家庭，代表亲情与和谐。此卦提示您需要注重家庭关系，保持和谐。通过家庭的支持来获得力量。`,
      38: `睽卦象征背离，代表分歧与矛盾。此卦提示您可能面临一些分歧，需要寻求共识。通过沟通来化解矛盾。`,
      39: `蹇卦象征困难，代表阻碍与挑战。此卦提示您可能面临一些困难，需要坚持不懈。要保持信心，克服困难。`,
      40: `解卦象征解脱，代表解决与释放。此卦提示您正在解决问题，需要继续努力。通过解决来获得解脱。`,
      41: `损卦象征损失，代表减少与调整。此卦提示您可能需要减少一些东西，需要适当调整。要保持平衡，避免过度。`,
      42: `益卦象征增益，代表增加与提升。此卦提示您正在增加和提升，需要继续努力。通过增益来获得更好的结果。`,
      43: `夬卦象征决断，代表决定与行动。此卦提示您需要做出决定，采取行动。要果断决策，不要犹豫不决。`,
      44: `姤卦象征相遇，代表机遇与挑战。此卦提示您可能遇到一些机遇，需要把握。要善于发现和利用机会。`,
      45: `萃卦象征聚集，代表团结与集中。此卦提示您需要团结一致，集中力量。通过团结来获得更大的成功。`,
      46: `升卦象征上升，代表提升与进步。此卦提示您正在上升，需要继续努力。通过提升来达到更高的境界。`,
      47: `困卦象征困顿，代表困难与束缚。此卦提示您可能面临一些困难，需要保持耐心。要相信困难终会过去。`,
      48: `井卦象征水井，代表资源与供给。此卦提示您需要合理利用资源，保持供给。通过合理利用来获得持续的发展。`,
      49: `革卦象征变革，代表改变与创新。此卦提示您需要变革和创新，不要墨守成规。通过变革来获得新的发展。`,
      50: `鼎卦象征鼎器，代表稳定与支撑。此卦提示您需要保持稳定，提供支撑。通过稳定来获得持续的发展。`,
      51: `震卦象征雷，代表震动与惊醒。此卦提示您需要保持警觉，及时应对变化。通过警觉来避免风险。`,
      52: `艮卦象征山，代表静止与稳定。此卦提示您需要保持静止和稳定，不要轻举妄动。通过稳定来获得更好的结果。`,
      53: `渐卦象征渐进，代表逐步发展。此卦提示您需要逐步发展，不要急于求成。通过渐进来获得稳定的发展。`,
      54: `归妹卦象征归妹，代表归宿与归属。此卦提示您需要找到自己的归宿，建立归属感。通过归属来获得安全感。`,
      55: `丰卦象征丰盛，代表富足与成功。此卦提示您正处于丰盛的时期，各方面都比较富足。要珍惜这个时期。`,
      56: `旅卦象征旅行，代表流动与变化。此卦提示您需要适应流动和变化，不要固守不变。通过流动来获得新的机会。`,
      57: `巽卦象征风，代表顺从与适应。此卦提示您需要顺从和适应，不要固执己见。通过适应来获得更好的发展。`,
      58: `兑卦象征泽，代表喜悦与沟通。此卦提示您需要保持喜悦和沟通，不要封闭自己。通过沟通来获得理解。`,
      59: `涣卦象征涣散，代表分散与重组。此卦提示您需要分散和重组，不要固守不变。通过重组来获得新的发展。`,
      60: `节卦象征节制，代表控制与调节。此卦提示您需要节制和调节，不要过度。通过节制来保持平衡。`,
      61: `中孚卦象征中孚，代表诚信与信任。此卦提示您需要保持诚信和信任，不要欺骗他人。通过诚信来获得信任。`,
      62: `小过卦象征小过，代表小错与调整。此卦提示您可能有一些小错，需要适当调整。要保持谨慎，避免大错。`,
      63: `既济卦象征既济，代表完成与成功。此卦提示您已经完成了一些事情，需要总结经验。要保持成功，继续努力。`,
      64: `未济卦象征未济，代表未完成与继续。此卦提示您还有一些事情未完成，需要继续努力。要保持信心，完成目标。`,
    };
  }

  private getQuestionGuidance(hexagramId: number, question: string): string {
    // 根据问题类型提供不同的指导
    const questionLower = question.toLowerCase();

    if (
      questionLower.includes('事业') ||
      questionLower.includes('工作') ||
      questionLower.includes('职业')
    ) {
      return `在事业方面，建议您保持积极进取的态度，但要注意循序渐进。要发挥自己的专长，与同事建立良好的合作关系。`;
    } else if (
      questionLower.includes('感情') ||
      questionLower.includes('爱情') ||
      questionLower.includes('婚姻')
    ) {
      return `在感情方面，建议您以诚待人，用心经营感情。要相互理解，相互支持，共同成长。`;
    } else if (
      questionLower.includes('健康') ||
      questionLower.includes('身体') ||
      questionLower.includes('疾病')
    ) {
      return `在健康方面，建议您注重养生，保持规律的生活作息。要适当运动，合理饮食，保持心情愉悦。`;
    } else if (
      questionLower.includes('财运') ||
      questionLower.includes('金钱') ||
      questionLower.includes('投资')
    ) {
      return `在财运方面，建议您理性投资，不要贪图小利。要量力而行，稳健理财，避免冒险。`;
    } else if (
      questionLower.includes('学习') ||
      questionLower.includes('考试') ||
      questionLower.includes('教育')
    ) {
      return `在学习方面，建议您保持专注，勤奋学习。要制定合理的学习计划，循序渐进，持之以恒。`;
    } else {
      return `针对您的问题，建议您保持冷静思考，不要急于求成。要顺应自然规律，以诚待人，相信会有好的结果。`;
    }
  }

  private getOverallAdvice(hexagramId: number, question?: string): string {
    // 根据卦象和问题生成个性化的总体建议
    const questionLower = question?.toLowerCase() || '';

    // 根据卦象特征和问题类型组合建议
    const adviceMap = {
      // 乾卦 - 事业相关
      1:
        questionLower.includes('事业') || questionLower.includes('工作')
          ? '此时正是发挥领导才能的良机，建议您主动承担责任，带领团队前进。但要避免过于强势，保持谦逊的态度。'
          : '您正处于积极向上的阶段，建议保持进取心，但要注意循序渐进，不可急躁冒进。',

      // 坤卦 - 感情相关
      2:
        questionLower.includes('感情') || questionLower.includes('爱情')
          ? '感情需要以柔克刚，建议您以包容和理解的态度对待对方，用真诚和耐心来化解矛盾，建立深厚的情感基础。'
          : '此时需要以柔克刚，建议您保持耐心和包容，以德服人，厚德载物。',

      // 泰卦 - 顺利时期
      11: '您正处于顺利的时期，各方面都比较和谐。建议您珍惜这个时期，继续努力，同时要居安思危，为未来做好准备。',

      // 否卦 - 困难时期
      12: '您可能面临困难时期，建议您保持耐心，不要强行突破。要顺应形势，等待时机，相信困难终会过去。',

      // 谦卦 - 谦虚
      15: '此时需要保持谦虚的态度，建议您不要骄傲自满，虚心学习，通过谦逊来获得他人的尊重和支持。',

      // 豫卦 - 快乐
      16: '您正处于快乐的时期，建议您珍惜这个时期，享受生活的美好，同时要将快乐分享给身边的人。',

      // 随卦 - 跟随
      17: '此时需要适应环境的变化，建议您不要固执己见，要灵活变通，跟随大势，顺势而为。',

      // 蛊卦 - 问题解决
      18: '您可能面临一些问题，建议您勇于面对问题，积极寻找解决方案，及时处理，避免问题扩大。',

      // 临卦 - 接近目标
      19: '您正在接近目标，建议您保持积极的态度，继续努力，迎接挑战，相信成功就在眼前。',

      // 观卦 - 观察
      20: '此时需要仔细观察和分析情况，建议您不要急于行动，通过深入思考来做出正确的决策。',

      // 噬嗑卦 - 突破
      21: '您需要咬紧牙关，克服困难，建议您坚持不懈地努力，通过毅力和决心来突破障碍。',

      // 贲卦 - 美化
      22: '此时需要注重外在的表现，建议您提升自己的形象，通过美化来获得更好的效果和认可。',

      // 剥卦 - 衰落
      23: '您可能面临一些衰落或变化，建议您保持积极的态度，适应新的情况，寻找新的机会。',

      // 复卦 - 恢复
      24: '您正在恢复或重生，建议您保持信心，重新开始，相信新的开始会带来更好的结果。',

      // 无妄卦 - 真实
      25: '此时需要保持真实和自然，建议您不要做作，通过真诚来获得他人的信任和支持。',

      // 大畜卦 - 大积累
      26: '您正在大量积累，建议您继续努力，厚积薄发，为未来的发展做好充分的准备。',

      // 颐卦 - 修养
      27: '此时需要注重修养和调养，建议您保持身心健康，通过修养来提升自己的境界和智慧。',

      // 大过卦 - 过度
      28: '您可能有些过度，建议您适当调整，保持平衡，避免极端，寻求中庸之道。',

      // 坎卦 - 险阻
      29: '您可能面临一些险阻，建议您保持冷静，小心应对，寻找突破口，相信困难终会过去。',

      // 离卦 - 光明
      30: '此时需要保持光明和热情，建议您照亮前行的道路，通过热情来感染他人，传播正能量。',

      // 咸卦 - 感应
      31: '此时需要与他人建立良好的沟通，建议您通过交流来增进理解，建立深厚的情感联系。',

      // 恒卦 - 恒久
      32: '此时需要保持持久和稳定，建议您不要轻易改变，通过坚持来获得成功和稳定。',

      // 遁卦 - 隐退
      33: '此时需要适当退避，建议您等待更好的时机，不要强行前进，要顺应形势。',

      // 大壮卦 - 强大
      34: '您正处于强大的时期，建议您发挥自己的力量，但要避免过于强势，保持谦逊。',

      // 晋卦 - 前进
      35: '您正在前进，建议您继续努力，通过不断进步来提升自己和实现目标。',

      // 明夷卦 - 光明被遮蔽
      36: '您可能面临一些困难，建议您保持信心，相信光明终会到来，坚持到底。',

      // 家人卦 - 家庭
      37: '此时需要注重家庭关系，建议您保持和谐，通过家庭的支持来获得力量和温暖。',

      // 睽卦 - 背离
      38: '您可能面临一些分歧，建议您寻求共识，通过沟通来化解矛盾，重建和谐。',

      // 蹇卦 - 困难
      39: '您可能面临一些困难，建议您坚持不懈，保持信心，相信困难终会被克服。',

      // 解卦 - 解脱
      40: '您正在解决问题，建议您继续努力，通过解决来获得解脱和自由。',

      // 损卦 - 损失
      41: '您可能需要减少一些东西，建议您适当调整，保持平衡，避免过度。',

      // 益卦 - 增益
      42: '您正在增加和提升，建议您继续努力，通过增益来获得更好的结果。',

      // 夬卦 - 决断
      43: '此时需要做出决定，建议您果断决策，采取行动，不要犹豫不决。',

      // 姤卦 - 相遇
      44: '您可能遇到一些机遇，建议您善于发现和利用机会，把握时机。',

      // 萃卦 - 聚集
      45: '此时需要团结一致，建议您集中力量，通过团结来获得更大的成功。',

      // 升卦 - 上升
      46: '您正在上升，建议您继续努力，通过提升来达到更高的境界。',

      // 困卦 - 困顿
      47: '您可能面临一些困难，建议您保持耐心，相信困难终会过去。',

      // 井卦 - 水井
      48: '此时需要合理利用资源，建议您保持供给，通过合理利用来获得持续发展。',

      // 革卦 - 变革
      49: '此时需要变革和创新，建议您不要墨守成规，通过变革来获得新的发展。',

      // 鼎卦 - 鼎器
      50: '此时需要保持稳定，建议您提供支撑，通过稳定来获得持续发展。',

      // 震卦 - 雷
      51: '此时需要保持警觉，建议您及时应对变化，通过警觉来避免风险。',

      // 艮卦 - 山
      52: '此时需要保持静止和稳定，建议您不要轻举妄动，通过稳定来获得更好的结果。',

      // 渐卦 - 渐进
      53: '此时需要逐步发展，建议您不要急于求成，通过渐进来获得稳定的发展。',

      // 归妹卦 - 归宿
      54: '此时需要找到自己的归宿，建议您建立归属感，通过归属来获得安全感。',

      // 丰卦 - 丰盛
      55: '您正处于丰盛的时期，建议您珍惜这个时期，享受富足和成功。',

      // 旅卦 - 旅行
      56: '此时需要适应流动和变化，建议您不要固守不变，通过流动来获得新的机会。',

      // 巽卦 - 风
      57: '此时需要顺从和适应，建议您不要固执己见，通过适应来获得更好的发展。',

      // 兑卦 - 泽
      58: '此时需要保持喜悦和沟通，建议您不要封闭自己，通过沟通来获得理解。',

      // 涣卦 - 涣散
      59: '此时需要分散和重组，建议您不要固守不变，通过重组来获得新的发展。',

      // 节卦 - 节制
      60: '此时需要节制和调节，建议您不要过度，通过节制来保持平衡。',

      // 中孚卦 - 诚信
      61: '此时需要保持诚信和信任，建议您不要欺骗他人，通过诚信来获得信任。',

      // 小过卦 - 小错
      62: '您可能有一些小错，建议您适当调整，保持谨慎，避免大错。',

      // 既济卦 - 完成
      63: '您已经完成了一些事情，建议您总结经验，保持成功，继续努力。',

      // 未济卦 - 未完成
      64: '您还有一些事情未完成，建议您保持信心，完成目标，不要放弃。',
    };

    return (
      adviceMap[hexagramId] ||
      '建议您保持内心的平静，顺应自然规律，以诚待人，相信会有好的结果。'
    );
  }
}
